<template>
  <div class="category">
    <!-- 按钮开始 -->
    <el-button @click='showHandler' type="primary" size="small" plain>添加</el-button>
    <!-- 按钮结束 -->

    <!-- 表格开始 -->
    <el-table :data="categorys" border style="width: 100%">
      <el-table-column prop="id" label="编号" align="center" width="120"></el-table-column>
      <el-table-column
        prop="name"
        label="名称"
        align="center"
        width="120">
      </el-table-column>
      <el-table-column
        label="图标" align='center' >
        <template slot-scope="scope">
          <el-popover trigger="hover" placement="top">
            <img width="100%" :src="scope.row.icon">
            <div slot="reference" class="name-wrapper">
              <img width="30px" :src="scope.row.icon">
            </div>
          </el-popover>
        </template>
      </el-table-column>
      <el-table-column
        prop="num"
        label="排序号"
        align="center"
        width="300">
      </el-table-column>
      <el-table-column
        fixed="right"
        label="操作"
        align="center"
        width="150">
        <template slot-scope="scope">
          <el-button @click="editHandler(scope.row)"  size="mini" type="success" plain>编辑</el-button>
         <el-popconfirm title="确定删除这条信息吗？" @onConfirm="deleteHandler(scope.row.id)">
            <el-button type="danger" plain size="mini" slot="reference">删除</el-button>
          </el-popconfirm>
        </template>
      </el-table-column>
    </el-table>
    <!-- 表格结束 -->

    <!-- 分页开始 -->
    <div style="float:right;">
    <el-pagination
    layout="prev, pager, next"
    :page-size="list.pageSize"
    :total="total"
    @current-change="changeHandler">
  </el-pagination>
    </div>
    <!-- 分页结束 -->

    <!-- 模态框开始 -->
    <el-dialog :title="title" :visible.sync="dialogFormVisible">

      <!-- 表单开始 -->
      {{ruleForm}}    
      <el-form :model="ruleForm"  ref="ruleForm" label-width="100px" class="demo-ruleForm">
        <el-form-item label="栏目名称" prop="name">
          <el-input v-model="ruleForm.name"></el-input>
        </el-form-item>
        <el-form-item label="序号" prop="name">
          <el-input v-model="ruleForm.num"></el-input>
        </el-form-item>
        <el-form-item label="图标" prop="name">
          <el-upload
            class="upload-demo"
            action="http://81.69.24.232/pet/jz_upload.php"
            multiple
            :limit="3"
            :on-success='successHandler'>
            <el-button size="small" type="primary">点击上传</el-button>
            <div slot="tip" class="el-upload__tip">只能上传jpg/png文件，且不超过500kb</div>
          </el-upload>
        </el-form-item>
      </el-form>
      <!-- 表单结束 -->

      <div slot="footer" class="dialog-footer">
        <el-button size='mini' @click="dialogFormVisible = false">取 消</el-button>
        <el-button size='mini' type="primary" @click="submitHandler">确 定</el-button>
      </div>
    </el-dialog>
    <!-- 模态框结束 -->
  </div>
</template>

<script>
import {get} from '../../utils/request'
 export default {
    methods: {  
      finAll(){
        get('/product/pageQuery',this.list).then((res)=>{
          console.log(res);
          if (res.status == 200) {
            this.categorys=res.data.list;
            this.total=res.data.total
          }else{
            this.$message({
              type:"error",
              message: res.message,
            })
          }
        })
      },

      //分页
      changeHandler(page){
        this.list.page=page;
        this.finAll()
      },

      
    },
    data() {
      return {
        categorys: [],
        list:{
          page:1,
          pageSize:5
        },
        total:0,
        
      }
    },
    created(){
      this.finAll()
    }
  }
</script>
<script>
import {mapActions, mapState} from 'vuex'
export default {
  data(){
    return {
      list:{
          page:1,
          pageSize:3
        },
        dialogFormVisible:false,
        ruleForm:{},
        title:'添加栏目信息'
    }
  },
  computed:{
    ...mapState('category',['categorys']),
    ...mapState('category',['total']),
  },
  methods:{
    ...mapActions('category',['findAllCategory','saveCategory','deleteCategory']),
    //分页
    changeHandler(page){
      this.list.page=page;
      this.findAllCategory(this.list)
    },

    //去添加栏目信息
    showHandler(){
      this.dialogFormVisible=true
    },

    //提交保存栏目信息
    submitHandler(){
      this.saveCategory(this.ruleForm).then(res=>{
        console.log(res,'/////////////////////////');
        if(res.status==200){
          this.dialogFormVisible=false
          this.findAllCategory(this.list)
          this.$message({
            type:'success',
            message:res.message
          })
        }else{
          this.$message({
            type:'error',
            message:res.message
          })
        }
      })
    },

    //编辑修改栏目信息
    editHandler(data){
      // console.log(data);
      
      //将当前行的内容，复制给ruleFrom
      this.ruleForm=data
      this.title='编辑栏目信息'
      //打开模态框
      this.dialogFormVisible=true
    },

    //删除栏目信息
    deleteHandler(id){
      let params={
        id
      }
      
      this.deleteCategory(params).then(res=>{
        if (res.status==200){
          this.findAllCategory(this.list)
          this.$message({
            type:'success',
            message:res.message
          })
        }else{
          this.$message({
            type:'error',
            message:res.message
          })
        }
      })
    },

    //文件上传成功时
    successHandler(file){
      // console.log(file);
      //文件上传成功，将拿到的图片地址，保存到我们栏目信息的对象中（ruleFrom）
      this.ruleForm.icon=file 
    }
  },

  created(){
    this.findAllCategory(this.list)
  }
}
</script>
<style>

</style>